package leetcode;

public class Mod {
    public static void main(String[] args) {
        String a = "123456789", b = "123456789";
        StringBuilder s=new StringBuilder();
        int m=a.length();
        int n=b.length();
        int nn=10007,k=0;
        while(m>0||n>0){
            if(--m>=0){
                k+=a.charAt(m)-'0';
            }
            if(--n>=0){
                k+=b.charAt(n)-'0';
            }
            s.insert(0,k%10);
            k=k/10;
        }
        if(k>0){
            s.insert(0,k);
        }
        System.out.println(mod(s.toString(),nn));
    }
    static int mod(String s,int nn){
        int len=9;
        int val=Integer.parseInt(s.substring(Math.max(s.length()-len,0)))%nn;
        if(s.length()<=len)return val;
        return (int)((long)((Math.pow(10,len)%nn)*(mod(s.substring(0,s.length()-len),nn)))%nn+val)%nn;
    }
}
//        StringBuilder s=new StringBuilder();
//        int m=a.length();
//        int l=b.length();
//        int k=0;
//        int n=10007;
//        while(m>0||l>0){
//            if(--m>=0){
//                k+=a.charAt(m)-'0';
//            }
//            if(--l>=0){
//                k+=b.charAt(l)-'0';
//            }s.insert(0,k%10);
//            k=k/10;
//        }if(k>1){
//            s.insert(0,k);
//        }
//        System.out.println(mod(s.toString(),n));
//    }
//    static int mod(String s,int n){
//        int len=9;
//        int val=Integer.parseInt(s.substring(Math.max(s.length()-len,0)))%n;
//        if(s.length()<=len)return val;
//        return ((int)((long)Math.pow(10,len))%n*((mod(s.substring(0,s.length()-len),n)))%n+val)%n;
//    }